In a typical information technology (IT) enterprise, storage resources are shared by multiple applications to improve utilization, cost, and operational efficiency. In many cases, storage systems that are shared by multiple applications do not attempt to distinguish between the different applications. Rather, a shared storage system attempts to optimize the overall performance of the storage system and to treat all requests the same. Often, a scheduler associated with storage system attempts to enhance overall throughput of the storage system, based on the conventional belief that enhancing the overall throughput is good for all applications accessing the storage system. For applications that may desire higher performance from the storage system, dedicated storage resources can be allocated to such applications. However, dedicating storage resources to applications is inflexible and inefficient.